Examples

示例可用状态

  • [x] case 1 (中心下落);
  • [x] case 2 (溃堤);
  • [x] case 3 (自由落体);
  • [ ] case 4 (剪切腔);
  • [ ] case 6 (静止腔体), nsave = 100, nstep = 5000;
  • [ ] case 7 (细长刚体斜入水);
  • [x] case 8 (溃堤,障碍物);
  • [x] case 9 (溃堤,障碍物);
  • [ ] case10 (静水);
  • [ ] case11 (静水浮体下落);
  • [ ] case12 (液舱晃荡);

示例使用方法

先编译运行 SPP 程序,根据示例 case 的 pif.lua 脚本和 spx.nml 配置文件生成初始粒子 pif.h5part 文件, pif.h5part 可使用 Paraview 直接打开查看:

spp pre -C example/case1     # 前处理
spx -C example/case1         # 求解

备注:由于尚未找到边界处理的最佳方式,初始时刻实虚粒子应该尽量不靠近,以避免边界粒子的影响,从而实现数值模拟。

sph

示例文件

  1. spx.nml(配置文件): SPX 求解器与工况配置文件,Fortran Namelist 语法;
  2. pif.nml(输入文件): SPX/SPX-Prepost 小型状态量记录文件,Fortran Namelist 语法;
  3. pif.lua(输入文件): 现阶段粒子初始化脚本,Lua 语言;
  4. pif.h5part(输入文件): H5Part 是一种 HDF5 数据存储格式的具体格式实现,是 SPX 的粒子初始化物理场量存储文件;
  5. pif-out.h5part(输出文件): 是各计算时间步的粒子输出物理场量的存储文件;
  6. STAT.csv(输出文件): 流场统计数据;
  7. FLOAT.csv(输出文件): 第一个浮体的统计数据。

可使用 ParaView 对 H5part 进行可视化,参见使用ParaView进行SPH模拟数据的可视化

船舶水动力学经典场景案例

在船舶水动力学中,有许多经典的CFD(Computational Fluid Dynamics,计算流体动力学)问题可以用于验证和评估船舶水动力学求解器。以下是一些经典的船舶水动力学CFD问题的例子:

  1. 液舱晃荡(Liquid Sloshing):液舱晃荡是指在船舶内部液体舱室中发生的自由表面流动。该问题涉及液体的运动、液体与结构的相互作用,以及自由液面的形变和波浪运动。
  2. 波浪中的船舶运动(Ship Motion in Waves)、水动力性能(Hydrodynamic performance):该问题研究船舶在海洋波浪环境中的运动行为。船舶受到波浪的影响,可能发生滚动、摇摆和冲击等运动,需要考虑船体姿态、波浪特性以及流体力学的相互作用。
  3. 落水砰击(Water Entry Slamming)、结构入水(Structural Entry):当一个物体以一定速度冲入液体中时,会发生砰击现象。在船舶水动力学中,砰击常指船体的底部或侧面与水面接触时的冲击现象。该问题涉及到大变形、剧烈振荡和压力波的产生与传播。
  4. 船舶进入船闸(Ship Entering Lock)、船舶抗漂性(Ship seakeeping):当船舶进入船闸时,需要克服船闸门的阻力和水流对船舶的影响。该问题涉及到水流的变化、船体的接触力、船闸门的影响以及进出船闸的动态行为。
  5. 船舶操纵性能(Ship Maneuverability)、船舶自航性(Ship manoeuvring):该问题研究船舶在不同操纵条件下的运动特性,包括行驶、转弯和停靠等。需要考虑舵的影响、水动力力矩的作用、推进器的效果以及液体的阻力和船体与液体的相互作用。

这些经典问题广泛应用于船舶水动力学领域,通过数值模拟可以研究和分析液体流动、船体运动、力和扭矩分布等现象,对船舶设计和性能评估具有重要意义。

本代码给出前 3 类问题的数值模拟示例,分别是液舱晃荡、波浪中的船舶运动和落水砰击。这些问题的数值模拟结果将在后续与实验结果进行对比,验证本代码的正确性。

参考链接

  1. DualSPHysics 示例.